﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _3_25_委托_事件_多线_学习
{
    /// <summary>
    /// 声明一个委托
    /// </summary>
    public delegate void MyDelegate();

    internal class Program
    {

        public static void DoWork()
        {
            Console.WriteLine("DoWork");
        }

        public void SayHi()
        {
            Console.WriteLine("Hi");
        }

        static void Main(string[] args)
        {
            //调用静态方法
            DoWork();
            //调用实例方法
            Program p = new Program();
            p.SayHi();

            //委托调用静态方法
            MyDelegate myDelegate1 = new MyDelegate(DoWork);
            myDelegate1.Invoke();

            //委托调用实例方法
            MyDelegate myDelegate2 = new MyDelegate(p.SayHi);
            myDelegate2.Invoke();


            Console.Read();

        }
    }
}
